
/*********************************************
 *
 * For a integer which is less than or equal
 * to 25000, try to compute the sum of all
 * factorials' right-most nonzero numbers.
 * As an example, suppose that n = 5, then
 *   5!=120 --> 2
 *   4!=24  --> 4
 *   3!=6   --> 6
 *   2!=2   --> 2
 *   1!=1   --> 1
 *   sum    --> 15
 *
 * Date: 5/29/2008
 ********************************************/

#include <stdio.h>
#include <stdlib.h>

#define n (5)

int main()
{
    int i, j, f=1, s=0;

    for( i=1; i<=n; i++ ){

        j = i;
        while( j % 5 == 0 ){
            j = j / 5;
            f = (f/2%2==0 ? f/2 : f/2+5);
        }

        f = f * (j%10) % 10;
        s = s + f % 10;
    }

	printf("%d\n", f);
	printf("%d\n", s);
	return 0;
}


/*********************************************
 *note

  ���µ����۽�������¼���������: ��n�Ľ׳�Ϊn!, ��(n-1)!���ߵķ�0��������
  ��2�ĸ�������n������5�ĸ���.

  ��Ŀ�Ĺؼ��Ƕ�ÿһ��n!, �������������ұ�һ����0��. ����, ��Ҫ��ÿ������
  �Ľ׳����ұߵ�����0��ȥ��. ���������۳˵ķ��������׳��ٽ��ұߵ�0����, ��
  ��n�ϴ�ʱ������Ȼ��������. ���Կ���ÿ���۳˵�ʱ��ֻ�������������ߵķ�0��
  ��. ����, 5!=120, ��ֻ�������ߵķ�0���ּ�12. ���ڽ׳��ұ�0�ĸ���ȡ���ڳ�
  ����10�ĸ���, ��2��5��10��������, ���Խ׳���10�������ǳ˻�������2��5�Ķ�
  ��. �Ӷ�, �׳����ұ�0�ĸ������˻�������2��5�Ķ�����ͬ. ����һ���׳˵�ʱ��ֻ
  Ҫ���۳˵������е���������5����, ������������һ���׳��г�����Ӧ����������
  2֮���Ľ�������, ���ý����������׳����ߵķ�0����. ����:

  14! = 87178291200, �����߷�0������871782912. ������15!�����߷�0����. ����
  ��15�е�����5��������3, �ٽ�14!���߷�0���ֳ���һ��2(��Ϊǰ����15�г�������
  һ��5)��435891456. ��15!���߷�0������: 435891456*3 = 1307674368.

  24! = 620448401733239439360000, �����߷�0������62044840173323943936. ����
  ��25!�����߷�0����. ���Ƚ�25�е��������5��������1, �ٽ�24!���߷�0���ֳ���
  ���2(��Ϊǰ����15�г����������5)��31022420086661971968. ��25!���߷�0����
  ��: 31022420086661971968*1 = 31022420086661971968.

  �õ�n!�����߷�0���ֺ�, ֻҪ��10ȡ�����Ϳ�������n!�����ұ�һ����0��.

  ����, �����������ӿɼ�, ���ַ�������Ҫ�漰������������, ���ܻ�������������
  ������. ʵ����, ��֪(n-1)!���߷�0������n!���ұߵķ�0��ʱ, ��Ϊ���������
  ��. (1)��n��������5, ������(n-1)!���߷�0���ֵĸ�λ��ֱ�ӳ�n�ĸ�λ��, �õ�
  �Ľ���ȡ��λ������n!���ұߵķ�0��. (2)��n�а������ɸ�����5ʱ, �����͸���
  һЩ.

  ��ʱ, ��ǰ����n!���߷�0���ֵķ���, ����Ҫ��n�����е�����5����, ͬʱ��
  (n-1)!���߷�0�����г�����Ӧ����������2. Ȼ��, ����������ĸ�λ����, ȡ�˻�
  �ĸ�λ����. ��������, ������(1)��֪, ÿ�����õ�ֻ��(n-1)!���ұߵķ�0��, ��
  ��ֱ�Ӷ��������ɴ�����2. Ȼ��, ���¹��ɿ��Դ�����������.

  �������ļ���, (n-1)!���ߵķ�0����������2�ĸ�������n������5�ĸ���. ����,
  (n-1)!���ߵķ�0���ֱ���ż��(n�����ٰ���һ��5). ����λ��ֻ����: 2, 4, 6, 8.
  ����, (n-1)!���ߵķ�0���ֵ����ұ��λ��������: 10k+2, 10k+4, 10k+6, 10k+8,
  ��2֮���ͱ�Ϊ: 5k+1, 5k+2, 5k+3, 5k+4. ��ʱ, (n-1)!���ߵķ�0���ֳ�����һ��
  2����ȻΪż��(2�ĸ�����5�ĸ�����). ����, ��λ����Ӧ�ؿ���Ϊ: 6(kȡ����),
  2(kȡż��), 8(kȡ����), 4(kȡż��). ��һ����, ��λ������: 2, 4, 6, 8, ��2
  ֮��Ϊ: 1, 2, 3, 4, ��ǰ�����տ��Է���: ��ԭ���λ��Ϊf, ����2������������
  ʱ, ȡf/2+5Ϊ����; ������ż��ʱ, ȡf/2Ϊ����.

 ********************************************/
